<?php
/**
* Classe de representação de uma camada de negócio da entidade
* A camada de negócio é a parte que engloba as regras e efetua os comandos de execução de um sistema
* @package Sistema
* @subpackage pessoa
*/
class NPessoa extends negocioPadrao{
	/**
	* @var integer Id Pessoa
	*/
	public $idPessoa;
	/**
	* @var integer Id Usuário
	*/
	public $idUsuario;
	/**
	* @var string Cs Pessoa
	*/
	public $csPessoa;
	/**
	* @var string Nm Pessoa
	*/
	public $nmPessoa;
	/**
	* @var string Documento
	*/
	public $nrDocumento;
	/**
	* @var string Código de endeçamento postal
	*/
	public $nrCep;
	/**
	* @var string Telefone
	*/
	public $nrTelefone;
	/**
	* @var string Telefone
	*/
	public $nrTelefone2;
	/**
	* @var string Telefone
	*/
	public $nrTelefone3;
	/**
	* @var integer Estado
	*/
	public $idEstado;
	/**
	* @var string Município
	*/
	public $nmMunicipio;
	/**
	* @var string Bairro
	*/
	public $nmBairro;
	/**
	* @var string Endereço
	*/
	public $txEndereco;
	/**
	* @var string Email
	*/
	public $nmEmail;
	/**
	* @var string Site
	*/
	public $nmSite;
	/**
	* @var integer Cargo
	*/
	public $idCargo;
	/**
	* @var string RG
	*/
	public $nrRg;
	/**
	* @var string Pis
	*/
	public $nrPis;
	/**
	* @var string CTPS
	*/
	public $nrCtps;
	/**
	* @var text Foto
	*/
	public $txFoto;
	/**
	* @var date Nascimento
	*/
	public $dtNascimento;
	/**
	* Retorna o nome da propriedade que contém o valor chave de negócio
	* @return string
	*/
	public function nomeChave(){ return 'idPessoa'; }
	/**
	* Executa o comando de importação do objeto
	*/
	public function importar(){
		$nEstado = new NEstado($this->conexao);
		$nEstado->passarSgSigla(operador::igual($this->pegarIdEstado()));
		$resultado = $nEstado->pesquisar(new pagina());
		$this->passarIdEstado((!$resultado) ? null : $resultado->avancar()->valorChave());
		parent::importar();
	}
	/**
	* Método que retorna o número do documento da pessoa
	* @return TDocumentoPessoal
	*/
	public function pegarDocumento(){
		if($this->nrDocumento instanceof TDocumentoPessoal){
			$this->nrDocumento->passarTipo(($this->csPessoa{0} == 'F') ? 'cpf' : 'cnpj');
		}
		return $this->nrDocumento;
	}
	/**
	* Retorna uma coleção com os colaboradores do sistema
	* @return colecaoPadraoNegocio
	*/
	function lerColaboradores(){
		$nPessoa = new NPessoa();
		$nPessoa->passarCsPessoa(operador::igual('FI'));
		return $nPessoa->pesquisar(new pagina());
	}
	/**
	* Retorna uma coleção com os colaboradores do sistema
	* @return colecaoPadraoNegocio
	*/
	function lerEmpresasInternas(){
		$nPessoa = new NPessoa();
		$nPessoa->passarCsPessoa(operador::igual('JI'));
		return $nPessoa->pesquisar();
	}
	/**
	* Executa o comando de gravação do objeto
	* @param bolean caso verdadeiro irá incluir com a chave de negócio passada caso falso irá verificar, se foi passada a chave irá alterar senão irá incluir
	*/
	/*public function gravar($gravarComChavePassada = false){
		if($this->valorChave()) {
			$clone = clone $this;
			$clone->ler($this->valorChave());
			$clone->pegarTxFoto();
			$this->passarTxFoto($clone->pegarTxFoto());
		}
		
		//parent::gravar($gravarComChavePassada); // talvez possa tirar esse gravar
		//x($_POST,$_FILES);die;
		if(isset($_FILES["txFoto"]) && $_FILES["txFoto"] && $_FILES["txFoto"]['name'])
		{
			$txFoto = $_FILES["txFoto"];
			
			$dirFotos = dirname(realpath(__FILE__));
			$dirFotos = explode('classes',$dirFotos);
			$dirFotos = $dirFotos[0];
			
			if(strpos($dirFotos,"/") >= 0) { $dirFotos.= 'imagens/fotos/'; }
			else { $dirFotos.= 'imagens\\fotos\\'; }
			
			if(!file_exists($dirFotos)) { mkdir($dirFotos); }
			
			$dataHora = TDataHora::agora();
			$extencao = explode('.',$txFoto['name']);
			$extencao = array_pop($extencao);
			$nmFoto = addslashes("{$dirFotos}{$this->valorChave()}_{$dataHora->pegarTempoMarcado()}.{$extencao}");
			
			if(is_uploaded_file($txFoto['tmp_name'])) {
				move_uploaded_file($txFoto['tmp_name'],$nmFoto);
				$this->passarTxFoto("{$this->valorChave()}_{$dataHora->pegarTempoMarcado()}.{$extencao}");
			}
		}
		
		parent::gravar($gravarComChavePassada);
	}*/
}
?>